Multiple document interface

In graphical user interfaces, a multiple document interface or MDI is one whose windows reside under a single parent window. Such systems often allow child windows to embed other windows inside them as well, creating complex nested hierarchies. This contrasts with single document interfaces where all windows are independent of each other.

Contents

Comparison with single document interface

In the usability community, there has been much debate about whether the multiple document or single document interface is preferable. Software companies have used both interfaces with mixed responses. For example, Microsoft changed its Office applications from SDI to MDI mode and then back to SDI, although the degree of implementation varies from one component to another. Generally, SDI is seen as more useful in cases where users work with more than one application.

The disadvantage of MDI usually cited is the lack of information about the currently opened windows: In order to view a list of windows open in MDI applications, the user typically has to select a specific menu ("window list" or something similar), if this option is available at all. With an SDI application, the window manager's task bar or task manager (if any) can display the currently opened windows. In recent years, applications have increasingly added "task-bars" and "tabs" to show the currently opened windows in an MDI application, which has made this criticism somewhat obsolete. Some people call this interface "tabbed document interface" (TDI).

Another option is "tiled" panes or windows, which make it easier to prevent content from overlapping.

Some applications allow the user to switch between these modes at their choosing, depending on personal preference or the task at hand.

Nearly all graphical user interface toolkits to date provide at least one solution for designing MDIs, an exception being Apple's Cocoa. The Java GUI toolkit, Swing, for instance, provides the class javax.swing.JDesktopPane which serves as a container for individual frames (class javax.swing.JInternalFrame). GTK+ lacks any standardized support for MDI.

Advantages

Disadvantages

Application examples

IDE-style interface

Graphical computer applications with an IDE-style interface (IDE) are those whose child windows reside under a single parent window (usually with the exception of modal windows). An IDE-style interface is distinguishable form of Multiple Document Interface (MDI), because all child windows in an IDE-style interface are enhanced with added functionality not ordinarily available in MDI applications. Because of this, IDE-style applications can be considered a functional superset and descendant of MDI applications.

Examples of enhanced child-window functionality include:

Collapsible child windows

A common convention for child windows in IDE-style applications is the ability to collapse child windows, either when inactive, or when specified by the user. Child windows that are collapsed will conform to one of the four outer boundaries of the parent window, with some kind of label or indicator that allows them to be expanded again.

Tabbed document interface for sub-panes

In contrast to (MDI) applications, which ordinarily allow a single tabbed interface for the parent window, applications with an IDE-style interface allow tabs for organizing one or more subpanes of the parent window.

IDE-style application examples

Macintosh

Because only a fixed system-wide menubar exists on the Macintosh, but the concept of nested windows does not, Macintosh applications in general might be thought of as somewhat similar to MDI with a fullscreen see-through parent window (if one ignores multiple monitors, virtual desktops (Spaces) and the interleaving of windows from multiple applications).

Mac OS and its GUI are document-centric instead of window-centric or application-centric. Every document window is an object with which the user can work. The menu bar changes to reflect whatever application the front window belongs to. Application windows can be hidden and manipulated as a group, and the user may switch between applications (i.e., groups of windows) or between individual windows, automatically hiding palettes, and most programs will stay running even with no open windows. Indeed, prior to Mac OS X, it was purposely impossible to interleave windows from multiple applications.

In spite of this, some unusual applications breaking the human interface guidelines (most notably Photoshop) do exhibit different behavior.

See also

External links